package file;


import jdk.internal.util.xml.impl.Input;

import java.io.*;
import java.util.Scanner;

@SuppressWarnings({"all"})
public class Demo13 {
    public static void main(String[] args) {
        // 1. 输入两个路径
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要拷贝的源路径:");
        String src = scanner.next();
        System.out.println("请输入要拷贝的目标路径：");
        String dest = scanner.next();
        File srcFile = new File(src);
        if (!srcFile.isFile()) {
            System.out.println("输入的源路径不正确！");
            return;
        }
        // 此处不太需要检查目标文件是否存在，OutputStream写文件的时候能够自动创建不存在的文件
        // 2. 读取源文件，拷贝到目标文件中
        try (InputStream inputStream = new FileInputStream(src)) {
            try (OutputStream outputStream = new FileOutputStream(dest)){
                // 把inputStream中的数据写到OutputStream
                byte[] buffer = new byte[1024];
                while (true) {
                    int len = inputStream.read(buffer);
                    if (len == -1) {
                        break;
                    }
                    // 写入的时候，不能把整个buffer写进去，可能只有一部分是有效数据
                    outputStream.write(buffer, 0 , len);
                }
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}
